YES 163.92000000000002
H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/empty.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:
↳ HASKELL
↳ BR
mainModule Main
| ((toUpper :: Char -> Char) :: Char -> Char) |
module Main where
Replaced joker patterns by fresh variables and removed binding patterns.
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
mainModule Main
| ((toUpper :: Char -> Char) :: Char -> Char) |
module Main where
Cond Reductions:
The following Function with conditions
toUpper | c |
| | c == '\223' || c == '\255' | |
| | isLower c |
= | toEnum (fromEnum c - fromEnum 'a' + fromEnum 'A') |
|
| | otherwise | |
|
is transformed to
toUpper2 | c True | = c |
toUpper2 | c False | = toUpper1 c (isLower c) |
toUpper1 | c True | = toEnum (fromEnum c - fromEnum 'a' + fromEnum 'A') |
toUpper1 | c False | = toUpper0 c otherwise |
toUpper3 | c | = toUpper2 c (c == '\223' || c == '\255') |
The following Function with conditions
is transformed to
undefined0 | True | = undefined |
undefined1 | | = undefined0 False |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
mainModule Main
| ((toUpper :: Char -> Char) :: Char -> Char) |
module Main where
Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
mainModule Main
| (toUpper :: Char -> Char) |
module Main where
Haskell To QDPs
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primIntToChar(Succ(vx2620), Succ(vx26100)) → new_primIntToChar(vx2620, vx26100)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primIntToChar(Succ(vx2620), Succ(vx26100)) → new_primIntToChar(vx2620, vx26100)
The graph contains the following edges 1 > 1, 2 > 2
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primPlusNat(Succ(vx26000), Succ(vx2620)) → new_primPlusNat(vx26000, vx2620)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primPlusNat(Succ(vx26000), Succ(vx2620)) → new_primPlusNat(vx26000, vx2620)
The graph contains the following edges 1 > 1, 2 > 2
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primIntToChar0(Succ(vx2600), Succ(vx2610), vx262) → new_primIntToChar0(vx2600, vx2610, vx262)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primIntToChar0(Succ(vx2600), Succ(vx2610), vx262) → new_primIntToChar0(vx2600, vx2610, vx262)
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_toUpper1(vx275, Succ(vx2760), Succ(vx2770)) → new_toUpper1(vx275, vx2760, vx2770)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper1(vx275, Succ(vx2760), Succ(vx2770)) → new_toUpper1(vx275, vx2760, vx2770)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_toUpper10(vx270, Succ(vx2710), Succ(vx2720), vx273) → new_toUpper10(vx270, vx2710, vx2720, vx273)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper10(vx270, Succ(vx2710), Succ(vx2720), vx273) → new_toUpper10(vx270, vx2710, vx2720, vx273)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_toUpper11(vx264, Succ(vx2650), Succ(vx2660), vx267, vx268) → new_toUpper11(vx264, vx2650, vx2660, vx267, vx268)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper11(vx264, Succ(vx2650), Succ(vx2660), vx267, vx268) → new_toUpper11(vx264, vx2650, vx2660, vx267, vx268)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_toUpper12(vx243, Succ(vx2440), Succ(vx2450), vx246, vx247, vx248) → new_toUpper12(vx243, vx2440, vx2450, vx246, vx247, vx248)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper12(vx243, Succ(vx2440), Succ(vx2450), vx246, vx247, vx248) → new_toUpper12(vx243, vx2440, vx2450, vx246, vx247, vx248)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5, 6 >= 6
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_toUpper13(vx235, Succ(vx2360), Succ(vx2370), vx238, vx239, vx240, vx241) → new_toUpper13(vx235, vx2360, vx2370, vx238, vx239, vx240, vx241)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper13(vx235, Succ(vx2360), Succ(vx2370), vx238, vx239, vx240, vx241) → new_toUpper13(vx235, vx2360, vx2370, vx238, vx239, vx240, vx241)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_toUpper14(vx201, Succ(vx2020), Succ(vx2030), vx204, vx205, vx206, vx207, vx208) → new_toUpper14(vx201, vx2020, vx2030, vx204, vx205, vx206, vx207, vx208)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper14(vx201, Succ(vx2020), Succ(vx2030), vx204, vx205, vx206, vx207, vx208) → new_toUpper14(vx201, vx2020, vx2030, vx204, vx205, vx206, vx207, vx208)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_toUpper2(vx164, Succ(vx1650), Succ(vx1660)) → new_toUpper2(vx164, vx1650, vx1660)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper2(vx164, Succ(vx1650), Succ(vx1660)) → new_toUpper2(vx164, vx1650, vx1660)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
Q DP problem:
The TRS P consists of the following rules:
new_toUpper20(vx99, Succ(vx1000), Succ(vx1010), vx102) → new_toUpper20(vx99, vx1000, vx1010, vx102)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_toUpper20(vx99, Succ(vx1000), Succ(vx1010), vx102) → new_toUpper20(vx99, vx1000, vx1010, vx102)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4